<%@ page import="java.util.Date" %><%--
  Created by IntelliJ IDEA.
  User: User
  Date: 2024/3/13
  Time: 19:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!--
    想要使用JSTL标签库,需要通过taglib指令导入指定的标签库
    uri:引用的tld文件所配置的uri地址
    prefix:前缀,其值理论上可以随便写,是为了便于区分重名的标签
        一般情况下,与对应tld文件的short-name保持一致
-->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>JSTL标签库</title>
</head>
<body>
<%
    // 模拟数据
    request.setAttribute("age",20);
    request.setAttribute("now",new Date());
%>
<h2>if标签</h2>
<!--
    if标签:是c.tld提供的标签,用于条件判断
        其用法相当于Java中的if单分支结构
    test:条件表达式,其值是boolean类型,当值为true时执行标签体内容
        条件表达式的内容一般使用EL表达式表示
-->
<c:if test="${age < 5}">婴儿</c:if>
<c:if test="${age < 18}">少年</c:if>
<c:if test="${age < 30}">青年</c:if>
<c:if test="${age < 60}">中年</c:if>
<c:if test="${age >= 60}">老年</c:if>

<h2>choose标签</h2>
<!--
    choose表现相当于Java的多分支结构
    存在两个子标签:when和otherwise
    when标签:可以有无数个,每一个when标签都是一个条件表达式的判断
        test属性:条件表达式,其值是boolean类型
        当其中某一个when标签表达式内容为true时,执行对应标签体内容并退出choose语句
    otherwise标签:有且仅有一个,当所有的when标签条件均不满足时,执行对应标签体内容
-->
<c:choose>
    <c:when test="${age < 5}">婴儿</c:when>
    <c:when test="${age < 18}">少年</c:when>
    <c:when test="${age < 30}">青年</c:when>
    <c:when test="${age < 60}">中年</c:when>
    <c:otherwise>老年</c:otherwise>
</c:choose>
<h2>formatDate标签</h2>
<!--
    这是fmt.tld中的标签,用于格式化日期
    value:日期值
    type:指定预定义日期格式,其值有三种
        date:显示yyyy-MM-dd,默认值
        time:显示HH:mm:ss
        both:显示yyyy-MM-dd HH:mm:ss
    pattern:自定义格式,用法与SimpleDateFormat参数一致
-->
${now}<br>
<fmt:formatDate value="${now}"/><br>
<fmt:formatDate value="${now}" type="date"/><br>
<fmt:formatDate value="${now}" type="time"/><br>
<fmt:formatDate value="${now}" type="both"/><br>
<fmt:formatDate value="${now}" pattern="yyyy年MM月dd日 HH:mm:ss E"/><br>
</body>
</html>
